home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / cpp_libs / rjs.lha / RJS / Sio / src / Sio.h < prev   
C/C++ Source or Header  |  1991-06-14  |  2KB  |  80 lines

  1. #ifndef RJS_SIO_CLASS_H
  2. #define RJS_SIO_CLASS_H
  3.  
  4. #include <iostream.h>
  5. #include <sys/ioctl.h>
  6.  
  7. class RJS_Sio {
  8. public:    
  9.     enum SioMode { Page,NoPage};
  10.     RJS_Sio(SioMode m=NoPage);
  11.     ~RJS_Sio();
  12.     static int print(const char *s);
  13.     static int printl(const char *s);
  14.     static int num_cols();
  15.     static int num_lines();
  16.     static void noecho();
  17.     static void echo();
  18.     static void cooked();
  19.     static void cbreak();
  20.     static void set_page_mode();
  21.     static void clear_page_mode();
  22.     static int get_page_mode();
  23.     static void set_current_line(int l);
  24.     static int get_current_line();
  25.     static void get_tty(struct sgttyb &tty);
  26.     static void set_tty(struct sgttyb &tty);
  27. private:
  28.     static int more();
  29.     static struct sgttyb savetty;    // orignal tty
  30.     static struct sgttyb ctty;    // current tty
  31.     static int ion;            // inverse on
  32.     static int uon;            // underline on
  33.     static int in_word;        // in_word
  34.     static SioMode page_mode;    // prompt for "--more--"
  35.     static int current_line;    // current line printed
  36.     static int  cols;        // number of columns
  37.     static int  lines;        // number of lines
  38.     static int initialized;    
  39.     static char buffer[256];    // buffer for escape strings
  40.     static void init();
  41.     static char *blink_on;        // strings from termcap
  42.     static char *bold_on;
  43.     static char *cls;
  44.     static char *delete_char;
  45.     static char *delete_line;
  46.     static char *erase_to_end_of_line;
  47.     static char *erase_to_end_of_screen;
  48.     static char *home;
  49.     static char *inverse_on;
  50.     static char *inverse_off;
  51.     static char *plain;
  52.     static char *restore_cursor;
  53.     static char *save_cursor;
  54.     static char *underline_on;
  55.     static char *underline_off;
  56. };
  57.  
  58. /************
  59.  
  60. codes for print:
  61. \b    bold on                \B    bold next word only
  62. \c    cls
  63. \d    delete character        \D    delete line
  64. \e    erase to end of line        \E    erase to end of screen
  65. \f    formfeed
  66. \g    bell
  67. \h    cursor home
  68. \i    inverse on/off            \I    inverse next word only
  69. \l    blink on            \L    blink next word only
  70. \n    new line
  71. \p    plain
  72. \r    carriage return            \R    Restore cursor position
  73.                     \S    Save cursor position
  74. \t     horizontal tab
  75. \u    underline on/off        \U    underline next word only
  76. \v    vertical tab
  77.  
  78. **************/
  79. #endif
  80.